SIMULATE

//Trajekti
		GENERATE 3600							//Broj dolazi na svaki sat
		SEIZE LUKA								//Za svaki slučaj zaposedamo luku
		ADVANCE 300								//Trajanje priprema za iskrcavanje
		ADVANCE V$VRISKR						//Trajanje iskrcavanja ljudi i kola (izračunava se dole)

		SAVEVALUE BRPUTN,0						//Broj ukrcanih putnika je sada 0
		SAVEVALUE BRKOLA,0						//Broj ukrcanih kola je sada 0

PUTNICI:TEST G CH$REDPUTN,0,KOLA				//Ako ima putnika koji čekaju
		UNLINK REDPUTN,KRAJ,1					//Izvlačimo jednog iz reda
		SAVEVALUE BRPUTN+,1						//Inkrementujemo brojač
		ADVANCE 12,3							//Trajanje ukrcavanja
		TEST EQ X$BRPUTN,100,PUTNICI			//Provera dali smo puni (maks 100 ljudi)

KOLA:	TEST G CH$REDKOLA,0,POLAZAK				//Ako iam kola koja čekaju
		UNLINK REDKOLA,KOLAUK,1					//Izvlačimo jedan auto iz reda
		SAVEVALUE BRKOLA+,1						//Inkrementujemo brojač
		ADVANCE 120,60							//Trajanje ukracavana
		TEST EQ X$BRKOLA,25,KOAL				//Provera da li smo puni (maks 25 kola)

POLAZAK:ADVANCE 200								//Trajanje pripreme za polazak
		RELEASE LUKA							//Oslobađamo luku za sledeći broj
		SAVEVALUE RASHOD+,100000				//Beležimo rashod po jednoj turi
		TERMINATE 1

//Putnici
		GENERATE 360,240						//Putnici dolaze u luku
		SEIZE BLAG								//Staju pred blaganu (formira se red, ali on nas ne zanima)
		TABULATE BLAGHIST						//Beležimo vreme čekanjau redu pred blagajnom
		ADVANCE 45,25							//Trajanje prodaje karte
		SAVEVALUE PRIHOD+,300					//Beležimo prihod od karte
		RELEASE BLAG							//Odlazak sa blagajne
		LINK REDPUTN,FIFO						//Putnik staje u red za ukrcavanje

//Kola
		GENERATE 480,300						//Kola dolaze u luku
		SEIZE KBLAG								//Staju u red pred bjalagjnom
		ADVANCE 150,30							//Trajanje izdavanja karte
		SAVEVALUE PRIHOD+,1000					//Beležimo prihod od karte
		RELEASE KBLAG							//Odlazak kola sa blagajne
		LINK REDKOLA,FIFO						//Kola ulaze u red za ukrcavanje

KOLAUK:	TABULATE KREDHIST						//Beležimo vreme čekanja u redu

KRAJ:	TERMINATE

RASHOD INITIAL 0								//promenljiva za rashode
PRIHOD INITIAL 0								//promenljiva za prihode
BLAGHIST TABLE M1,								//histogram za vremena čekanja ljudi pred blagajnom
KREDHIST TABLE M1,								//histogram za vremena čekanja kola za ukrcavanje
VRISKR VARIABLE 100*FN$VISK+3*FN$PISK			//račun ukupnog vremena iskrcavanja
VISK FUNCTION RN1,D16							//funcija broja vozila za iskrcavanje
.0625,10/.125,11/.1875,12/.../1.0,25
PISK FUNCTION RN2,C3							//funkcija broja ljudi za iskrcavanje
.2,20/.5,50/1.0,100

START 5											//rajanje će biti 5 brodova (na kraju toka brodova imamo TERMINATE 1)
END